package net.ericaro.neojavagen.classes;

/**
 * <b>ConstructorDeclaration</b> ::= <{@link net .ericaro .neojavagen .packages .JavadocComment JavadocComment}>? <
 * {@link net .ericaro .neojavagen .interfaces .Annotations Annotations}>? <{@link java .util .EnumSet <net .ericaro .neojavagen .classes .ConstructorModifier >
 * EnumSet}> <{@link net .ericaro .neojavagen .classes .ConstructorDeclarator ConstructorDeclarator}> <{@link net .ericaro .neojavagen .classes .Throws Throws}>?
 * <{@link net .ericaro .neojavagen .classes .ConstructorBody ConstructorBody}>
 * 
 * @author eric@ericaro.net
 */
public class ConstructorDeclaration extends net.ericaro.neojavagen.JavaPartComposition implements net.ericaro.neojavagen.classes.ClassBodyDeclaration {
	private net.ericaro.neojavagen.interfaces.Annotations annotations;

	private net.ericaro.neojavagen.classes.Throws athrows;

	private net.ericaro.neojavagen.classes.ConstructorBody constructorBody;

	private net.ericaro.neojavagen.classes.ConstructorDeclarator constructorDeclarator;

	private java.util.EnumSet<net.ericaro.neojavagen.classes.ConstructorModifier> enumSet;

	private net.ericaro.neojavagen.packages.JavadocComment javadocComment;

	public ConstructorDeclaration(java.util.EnumSet<net.ericaro.neojavagen.classes.ConstructorModifier> enumSet, net.ericaro.neojavagen.classes.ConstructorDeclarator constructorDeclarator, net.ericaro.neojavagen.classes.ConstructorBody constructorBody) {
		this.javadocComment = null;
		this.annotations = null;
		this.enumSet = enumSet;
		this.constructorDeclarator = constructorDeclarator;
		this.athrows = null;
		this.constructorBody = constructorBody;
	}

	public ConstructorDeclaration(net.ericaro.neojavagen.packages.JavadocComment javadocComment, net.ericaro.neojavagen.interfaces.Annotations annotations, java.util.EnumSet<net.ericaro.neojavagen.classes.ConstructorModifier> enumSet, net.ericaro.neojavagen.classes.ConstructorDeclarator constructorDeclarator, net.ericaro.neojavagen.classes.Throws athrows, net.ericaro.neojavagen.classes.ConstructorBody constructorBody) {
		super();
		this.javadocComment = javadocComment;
		this.annotations = annotations;
		this.enumSet = enumSet;
		this.constructorDeclarator = constructorDeclarator;
		this.athrows = athrows;
		this.constructorBody = constructorBody;
	}

	public net.ericaro.neojavagen.interfaces.Annotations getAnnotations() {
		return annotations;
	}

	public net.ericaro.neojavagen.classes.ConstructorBody getConstructorBody() {
		return constructorBody;
	}

	public net.ericaro.neojavagen.classes.ConstructorDeclarator getConstructorDeclarator() {
		return constructorDeclarator;
	}

	public java.util.EnumSet<net.ericaro.neojavagen.classes.ConstructorModifier> getEnumSet() {
		return enumSet;
	}

	public net.ericaro.neojavagen.packages.JavadocComment getJavadocComment() {
		return javadocComment;
	}

	public net.ericaro.neojavagen.classes.Throws getThrows() {
		return athrows;
	}

	public void setAnnotations(net.ericaro.neojavagen.interfaces.Annotations annotations) {
		this.annotations = annotations;
	}

	public void setConstructorBody(net.ericaro.neojavagen.classes.ConstructorBody constructorBody) {
		this.constructorBody = constructorBody;
	}

	public void setConstructorDeclarator(net.ericaro.neojavagen.classes.ConstructorDeclarator constructorDeclarator) {
		this.constructorDeclarator = constructorDeclarator;
	}

	public void setEnumSet(java.util.EnumSet<net.ericaro.neojavagen.classes.ConstructorModifier> enumSet) {
		this.enumSet = enumSet;
	}

	public void setJavadocComment(net.ericaro.neojavagen.packages.JavadocComment javadocComment) {
		this.javadocComment = javadocComment;
	}

	public void setThrows(net.ericaro.neojavagen.classes.Throws athrows) {
		this.athrows = athrows;
	}

	@Override
	public java.lang.String toString() {
		return print(javadocComment, annotations, enumSet, constructorDeclarator, athrows, constructorBody);
	}
}
